package cz.vse.adventura.po1715.xforv00_forejt.gui._04_abstract;

import cz.pecinovsky.english.pojj.adv_framework.game_gui.IObjectG;
import cz.pecinovsky.english.pojj.adv_framework.game_txt.INamed;
import javax.swing.JButton;

/*******************************************************************************
 * Instance třídy {@code PaneItem} představují položky na panelech
 * Jsou to tlačítka, dokážou ale navíc vrátit svůj název, který se shoduje
 *      s názvem předmětu, který zobrazují
 *
 * @author    Vladimír FOREJT
 * @version   0.00.000
 */
public class PaneItem extends JButton
{
//== KONSTANTNÍ ATRIBUTY TŘÍDY =================================================
//== PROMĚNNÉ ATRIBUTY TŘÍDY ===================================================
//== STATICKÝ INICIALIZAČNÍ BLOK - STATICKÝ KONSTRUKTOR ========================
//== KONSTANTNÍ ATRIBUTY INSTANCÍ ==============================================
    
    private final String name;
    
//== PROMĚNNÉ ATRIBUTY INSTANCÍ ================================================
//== PŘÍSTUPOVÉ METODY VLASTNOSTÍ TŘÍDY ========================================
//== OSTATNÍ NESOUKROMÉ METODY TŘÍDY ===========================================

//##############################################################################
//== KONSTRUKTORY A TOVÁRNÍ METODY =============================================
    /***************************************************************************
     * Konstruktor pro předměty, který vytvoří tlačítko s obrázkem
     */
    PaneItem(IObjectG item) {
        super(item.getPicture());
        name = item.getName();        
    }
    
    /***************************************************************************
     * Konstruktor zejména pro místnosti, který vytvoří tlačítko s popiskem
     */
    PaneItem(INamed item) {
        super(item.getName());
        name = item.getName();
    }
//== ABSTRAKTNÍ METODY =========================================================
//== PŘÍSTUPOVÉ METODY VLASTNOSTÍ INSTANCÍ =====================================
    
    /*******************************************************************************
    * Vrací název položky (tlačítka)
    */
    @Override
    public String getName() {
        return name;
    }
    
//== OSTATNÍ NESOUKROMÉ METODY INSTANCÍ ========================================
//== SOUKROMÉ A POMOCNÉ METODY TŘÍDY ===========================================
//== SOUKROMÉ A POMOCNÉ METODY INSTANCÍ ========================================
//== INTERNÍ DATOVÉ TYPY =======================================================
//== TESTY A METODA MAIN =======================================================
//
//    /***************************************************************************
//     * Testovací metoda.
//     */
//    public static void test()
//    {
//        PaneItem inst = new PaneItem();
//    }
//    /** @param args Parametry příkazového řádku - nepoužívané. */
//    public static void main( String[] args )  {  test();  }
}
